package  
{
	//import away3d.core.render.BackgroundImageRenderer;
	import fl.controls.Label;
	import flash.display.MovieClip;
	import flash.display.Shape;
	import flash.events.Event;
	import flash.text.TextField;
    import flash.text.TextFormat; 
	import flash.text.TextFieldAutoSize;
	import fl.controls.RadioButton;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	
	//import citrus.core.starling.StarlingCitrusEngine
	/**
	 * ...
	 * @author LuisOliveira
	 */
	public class Main extends MovieClip
	{
		
		var popup:Boolean
		
		var inicio:Inicial
		var cenario:Cenario
		var player:Player
		var cliente:Cliente
		var hud:Hud
		var marcador:Marcador
		
		var gametime:int
		var seg:int
		var min:int
		var hora:int
		var textHora:TextField
		var textMin:TextField
		var textSeg:TextField
		var timecount:Boolean
		
		var AR_clientes:Array
		var contCliente:Number
		var criarCliente:Number
		var qtdCliente:Number
		
		public function Main() 
		{
			AR_clientes = []
			contCliente = 0
			criarCliente = 720
			qtdCliente = 0
			
			gametime = 0
			seg = 0
			min = 0
			hora = 0
			timecount = false
			
			popup = true
			
			inicio = new Inicial();
			addChild(inicio);
			
			this.addEventListener(Event.ENTER_FRAME, atualizar)
		}

		function iniciarJogo(e:MouseEvent):void
		{
			popup = false
			
			removeChild(inicio)
			
			desenharTela()
			
			timecount = true
			
		}
		
		public function atualizar(e:Event):void
		{
			if (!popup)
			{
				atualizarRelogio()
				criandoCliente()
				colisaoCliente()
			}
			else
			{
				inicio.btIniciar.addEventListener(MouseEvent.CLICK, iniciarJogo);
			}
	
			//stage.addEventListener(MouseEvent.CLICK, mostarPonto);
		}
		
		function atualizarRelogio():void
		{
			if (timecount == true)
			{
				gametime++
				//trace(gametime)
				if (gametime == 24)
				{
					seg++
					gametime = 0
				}
				if (seg == 60)
				{
					min++
					seg = 0
				}
				if (min == 60)
				{
					hora++
					min = 0
				}
				textSeg.text = seg.toString();
				textMin.text = min.toString();
				textHora.text = hora.toString();
				hud.suprimentos = player.suprimento
				hud.caixa = player.caixa
			}
		}
		
		function criandoCliente():void
		{
			contCliente++
			if (contCliente % criarCliente == 0)
			{
				cliente = new Cliente()
				cliente.x = 561
				cliente.y = 800
				addChild(cliente)
				AR_clientes.push(cliente)
				AR_clientes[qtdCliente].pegarPonto()
				qtdCliente++
				player.caixa += 150
				player.suprimento -= 10
			}
		}
		
		function colisaoCliente():void
		{
			if (AR_clientes.length > 0)
			{
				for (var r:uint = 0; r < AR_clientes.length; r++)
				{
					if (AR_clientes[r].clientePoint.hitTestObject(marcador.AR_Marker[AR_clientes[r].pontoAtual]))
					{
						AR_clientes[r].moveX = 0
						AR_clientes[r].moveY = 0
						AR_clientes[r].x = marcador.AR_Ponto[AR_clientes[r].pontoAtual].x
						AR_clientes[r].y = marcador.AR_Ponto[AR_clientes[r].pontoAtual].y
				
						if (AR_clientes[r].pontoAtual == marcador.AR_Ponto.length-1)
						{
							AR_clientes[r].caminhoCrescente = false
						}
						else if (AR_clientes[r].pontoAtual == 1)
						{
							AR_clientes[r].caminhoCrescente = true
						}
						
						if (AR_clientes[r].caminhoCrescente)
						{
							AR_clientes[r].pontoAtual++
						}
						else
						{
							AR_clientes[r].pontoAtual--
						}
						AR_clientes[r].pegarPonto()
						
					}
				}
			}
					
		}
		
		function mostarPonto(e:MouseEvent):void
		{
			trace (mouseX+", "+mouseY)
		}
				
		public function desenharTela():void
		{
			//Adicionando Classe Cenario.
			cenario = new Cenario
			addChild(cenario)
			cenario.x = stage.stageWidth / 2
			cenario.y = stage.stageHeight / 2			
			
			//Adicionando Classe Player. Centralizando o boneco do jogador.
			player = new Player()
			addChild(player)
			player.x = stage.stageWidth / 2
			player.y = stage.stageHeight / 2
						
			// Hud
			hud = new Hud()
			addChild(hud)
			hud.x = stage.stageWidth / 2
			hud.y = stage.stageHeight / 2
			
			// Marcador do caminho do cliente
			marcador = new Marcador()
			addChild(marcador)
			marcador.alpha = 0
			
			// Relogio
			textHora = new TextField()
			addChild(textHora)
			textHora.x = 20
			textHora.y = 20
			textMin = new TextField()
			addChild(textMin)
			textMin.x = 35
			textMin.y = 20
			textSeg = new TextField()
			addChild(textSeg)
			textSeg.x = 50
			textSeg.y = 20
		}
		
	}

}